<?php

class ctl_spec extends adminPage
{

    var $workground = 'goods';

    function addCol()
    {
        $specDesc = unserialize(urldecode($_POST['goods_spec_desc']));

        $objSpec = &$this->system->loadModel('goods/specification');
        $aSpec = array();
        if (empty($specDesc)) {
            $aSpec = $objSpec->getListByTypeId($_GET['type_id']);
        } else {
            $aSpec = $objSpec->getListByIdArray(array_keys($specDesc));
            foreach ($aSpec as $key => $rows) {
                $aSpec[$key]['sel_options'] = $specDesc[$rows['spec_id']];
            }
        }
        foreach ($aSpec as $key => $rows) {
            $aVal = $objSpec->getValueList($rows['spec_id']);
            foreach ($aVal as $k => $v) {
                $aVal[$k]['spec_value'] = $v['spec_value'];
            }
            $aSpec[$key]['options'] = $aVal;
            $aSpec[$key]['spec_name'] = $rows['spec_name'];
        }
        if ($_POST['goods']) {
            $this->pagedata['goods_args'] = json_encode(array('goods_args' => $_POST['goods']));
        }
        $this->pagedata['spec_default_pic'] = $this->system->getConf('spec.default.pic');
        $this->pagedata['specs'] = $aSpec;
        $this->pagedata['ctlType'] = $_POST['ctlType'];
        $this->display('product/spec_addcol.html');
    }

    function specValue($specId)
    {
        $objSpec = &$this->system->loadModel('goods/specification');
        $aSpec = $objSpec->getFieldById($specId, array('*'));
        $aVal = $objSpec->getValueList($specId);
        $aSpec['options'] = $aVal;

        $this->pagedata['sItem'] = $aSpec;
        $this->pagedata['spec_default_pic'] = $this->system->getConf('spec.default.pic');
        $this->display('product/spec_value.html');
    }

    function _doCreatePro($pro, $spec, $goods_args)
    {
        if (empty($spec)) {
            $res = array();
            foreach ($pro as $pk => $pv) {
                $res[$pk]['sel_spec'] = $pv;
                foreach ($goods_args as $argsk => $argsv)
                    $res[$pk][$argsk] = $argsv;
            }
            return $res;
        }

        $firestSpec = array_shift($spec);

        $rs = array();
        foreach ($firestSpec as $sitem) {
            foreach ($pro as $pitem) {
                $apitem = $pitem;
                array_push($apitem, $sitem);
                $rs[] = $apitem;
            }
            if (empty($pro))
                $rs[] = array($sitem);
        }
        return $this->_doCreatePro($rs, $spec, $goods_args);
    }

    function selAlbumsImg()
    {
        $this->pagedata['selImgs'] = explode(',', $_POST['selImgs']);
        $this->pagedata['img'] = $_POST['img'];
        $this->display('product/spec_selalbumsimg.html');
    }

    function doAddCol()
    {
        $memberLevel = &$this->system->loadModel('member/level');
        $this->pagedata['mLevels'] = $memberLevel->getList('member_lv_id,dis_count');
        $this->pagedata['spec']['vars'] = $_POST['spec_vars'];
        $this->pagedata['goods']['spec_value_image'] = $_POST['spec_value_image'];
        $this->pagedata['goods']['spec_desc'] = $_POST['goods']['spec_desc'];
        $spec_vars = array();
        foreach ($_POST['spec_vars'] as $k => $v)
            $spec_vars[$k]['spec_name'] = $v;
        $this->pagedata['specname'] = $spec_vars;
        $this->pagedata['goods']['spec_desc_str'] = urlencode(serialize($_POST['goods']['spec_desc']));
        if ($_POST['goods_args']) {
            $this->pagedata['goods_args'] = json_encode(array('goods_args' => $_POST['goods_args']));
        }
        if ($_GET['create'] == 'true') {
            $pro = array();
            $spec = array();

            $i = 1;
            foreach ($_POST['goods']['spec_desc'] as $sid => $sitem) {
                $j = 1;
                foreach ($sitem as $psid => $psitem) {
                    $spec[$i][$j] = array(
                        'spec_id' => $sid,
                        'p_spec_value_id' => $psid,
                        'spec_value' => $psitem['spec_value'],
                        'spec_type' => $psitem['spec_type'],
                        'spec_value_id' => $psitem['spec_value_id'],
                        'spec_image' => $psitem['spec_image'],
                        'spec_goods_images' => $psitem['spec_goods_images']
                    );
                    $j++;
                }
                $i++;
            }
            $pro = $this->_doCreatePro($pro, $spec, $_POST['goods_args']);
            $this->pagedata['fromType'] = 'create';
            $this->pagedata['goods']['products'] = $pro;

        }
        $this->pagedata['needUpValue'] = json_encode($_POST['needUpValue']);
        $this->pagedata['spec_default_pic'] = $this->system->getConf('spec.default.pic');
        $this->pagedata['mlevels'] = $memberLevel->getList('member_lv_id,dis_count');
        $this->pagedata['storeplace_display_switch'] = $this->system->getConf('storeplace.display.switch');
        $this->display('product/spec.html');
    }

    function addSpecTab()
    {
        $objSpec = &$this->system->loadModel('goods/specification');
        $spec = $objSpec->getFieldById($_POST['spec_id'], array('*'));
        $spec['spec_name'] = $spec['spec_name'];
        $specValue = $objSpec->getValueList($_POST['spec_id']);
        foreach ($specValue as $k => $v) {
            $specValue[$k]['spec_value'] = $v['spec_value'];
        }
        $this->pagedata['spec'] = $spec;
        $this->pagedata['specValue'] = $specValue;
        $this->pagedata['spec_default_pic'] = $this->system->getConf('spec.default.pic');
        $this->display('product/spec_addspectab.html');
    }

    function addSpecValue()
    {
        $_POST = stripslashes_array($_POST);
        foreach ($_POST['spec'] as $k => $v) {
            $this->pagedata[$k] = $v;
        }
        $this->pagedata['pSpecId'] = time() . $_POST['sIteration'];
        $this->pagedata['spec_default_pic'] = $this->system->getConf('spec.default.pic');
        $this->display('product/spec_addspecvalue.html');
    }

    function addRow()
    {
        /*
        foreach($_POST['vars'] as $d=>$vs){
            $vars[] = array('id'=>$d,'name'=>$vs,'vars'=>json_encode(array_unique($_POST['val'][$d])));
        }
        */
        if ($_POST['bn']) {
            if (!empty($_POST['bn'][0]))
                $_POST['bn'][0] = substr($_POST['bn'][0], 0, -1) . (substr($_POST['bn'][0], -1) + 1);
            $_POST['goods_args'] = array(
                'price' => $_POST['price'][0],
                'cost' => $_POST['cost'][0],
                'product_bn' => $_POST['bn'][0],
                'mktprice' => $_POST['mktprice'][0],
                'weight' => $_POST['weight'][0],
                'store' => $_POST['store'][0]
            );
            foreach ($_POST['mprice'] as $mpk => $mpv) {
                $_POST['goods_args']['mprice'][$mpk] = $mpv[0];
            }
        }
        $spec_desc = unserialize($_POST['spec_desc']);
        $memberLevel = &$this->system->loadModel('member/level');
        $this->pagedata['mLevels'] = $memberLevel->getList('member_lv_id,dis_count');
        $this->pagedata['goods']['spec_desc'] = $spec_desc;
        $this->pagedata['goods_args'] = $_POST['goods_args'];
        $this->pagedata['spec_default_pic'] = $this->system->getConf('spec.default.pic');
        $this->pagedata['storeplace_display_switch'] = $this->system->getConf('storeplace.display.switch');

        $this->display('product/spec_row.html');
    }

    function addSpec($typeId = 0)
    {
        $objSpec = &$this->system->loadModel('goods/specification');
        $aSpec = array();
        if ($typeId)
            $aSpec = $objSpec->getListByTypeId($typeId);
        else
            $aSpec = $objSpec->getListByIdArray();
        $this->pagedata['specs'] = $aSpec;
        $this->display('product/spec_select.html');
    }

}

?>
